/*
 【入门】10 进制转 D 进制
  题目描述
    十进制整数 N 和其他 D（D 的值为 2、8、16）进制数的转换是计算机实现计算的基本问题，
    其解决方法很多，其中一个简单算法基于下列原理：
        N = (N div d)×d + N mod d (其中：div 为整除运算，mod 为求余运算)。
      简单来说，就是除 D 取余，然后倒过来得到 D 进制的数。
      例如：
        (1348)10 = (10101000100)2
        (1348)10 = (2504)8
        (1000)10 = (3E8)16
     （请注意：转 16 进制时，用 A 代表余数 10，B 代表余数 11，……）

    假设现要编制一个满足下列要求的程序：
      对于输入的任意一个非负十进制整数 n（n <= 1,000,000,000），打印输出与其等值的 D 进制数。
  输入
    有两个整数 N 和 D，N 表示要转换的十进制非负整数，D 代表要转换的进制（2、8或16）
  输出
    N 进制转 D 进制的结果
  样例输入
    1348 2
  样例输出
    10101000100
*/

#include <bits/stdc++.h>

using namespace std;

int main() {
    int n, m;
    int x;
    stack <char> s1;

    cin >> n >> m;

    // 注意: 题目描述中的输入整数 N 为非负整数, 有可能为 0 ！！！
    if (n == 0) {
        cout << 0;
        return 0;
    }

    while (n != 0) {
        if (n % m >= 10) {
            int a = n % m - 10;
            char y = 'A' + a;
            s1.push(y);
        } else {
            int a = n % m;
            char y = '0' + a;
            s1.push(y);
        }
        n = n / m;
    }

    while (s1.size() != 0) {
        cout << s1.top();
        s1.pop();
    }

    return 0;
}